执行效率太低又怎样? Python 照样火过 Java、C/ C++
点击上方“CSDN”,选择“置顶公众号”
关键时刻,第一时间送达!
世界上有成百上千种编程语言,时代更迭下不断有新的语言产生和消亡,但 Java 的江湖地位始终无人撼动,长期霸占排行榜榜首。
但是近年来,Python 显露出越来越猛的进攻趋势,更似有反超 Java 之意。
2011 - 2017 年 Python vs Java 搜索指数逐渐靠拢且不断赶超,图片来源于网络
之前的《不止 20K,Python 工程师薪资再飙升》一文中就阐述了目前市场上 Python 岗位的火爆情况。一方面市场需求不断上涨,据最新的招聘网站数据统计,平均每月招聘人数需求达12331 人,10 月的招聘旺季更高达 20600 人,招聘地区也以北、上、深、杭、广等一线城市为主。另一方面,Python 工程师的薪资水准也持续攀升,在全国范围内月薪以 20K - 30 K 居多,当然相应地对工作经验和学历也有要求,工作 3- 5 年的本科学历人员最受欢迎。
显而易见,大火的 Python 是一个新的时代「风口」。
然而比起 Python,市场上明明还有很多更为高效、易用的编程语言:前有应用率最高、长期霸占排行榜的常青藤 Java,后有易于上手的 C,还有在游戏和工具领域占主流地位的 C++,以及占据 Windows 桌面应用程序半壁江山的 C# 等等。相较而言,Python 具有执行速度不够快、GIL 锁限制并发、版本间不能很好的兼容等缺陷。
那么为什么近年来 Python 能够突破重围、突然火起来了?
其一,简单易学且生态开放的 Python 很容易上手。
大多数人都相信“最好的编程语言”是取决于具体领域的,因为每种语言都有自身的优缺点,没有例外,比如 Java 的体型臃肿、语法冗长一直被大量的开发者所诟病,C 语言极大依赖于程序员本身的驾驭能力,C++语法复杂对开发者很不友好,C# 缺乏生态支持后续乏力......至少目前,还没有任何一门语言能完美满足所有需求特性。
Python 的执行速度慢是不可避免的。作为一门脚本语言,它自然会比那些需要编译为可执行程序的语言要慢一些,因为在执行的过程中需要解析器参与,一边解析一边执行——这是脚本语言的通病。但在现代计算机的硬件配置下,Python 的运行速度和一些快速语言已经越来越近了。而且瑕不掩瑜, Python 不仅不需要浪费太多时间做一些定义和强制转换变量类型的常规工作,还有大量免费的库供使用,无需“重新发明轮子”,各种 Web 框架、爬虫框架、数据分析框架、机器学习框架可以拿来即用。此外它与 C / C ++ 等代码之间可以进行简单的绑定,这就意味着复杂代码部分的性能可以植入这些语言,能够避免带来性能损失。
目前, 越来越多的工程师使用 Python 进行大数据处理,科研工作者开始使用 Python 来进行数据分析,系统管理员使用 Python 管理 Linux 系统,开源的云计算平台 OpenStack 使用 Python 语言开发,很多编程爱好者使用 Python 进行爬虫等......Python 已经逐步在网络爬虫、数据分析、AI、机器学习、Web开发、金融、运维、测试等多个领域扎根壮大。
谷歌搜索结果显示的 Python 应用领域占比,图片来源于网络
其二,人工智能的爆发为 Python 的流行大大地添了一把火。
在机器学习领域,Python 是 ROS(机器人操作系统) 的两大主要编程语言之一。对于机器学习算法而言,重要的是算法能够快速构建、代码阅读性好、维护简单、上手容易,Python 能够很好地满足这些需求。而且作为一门胶水语言,很多算法都会提供一个 Python 接口,底层仍然用更为快速的语言来实现,所以 Python 的角色主要在数据预处理、数据展示、算法定义等方面,这些动作所花费的机器执行时间几乎可以忽略不计。
所以开发者需要把握「风口」,积极进阶
简单易学、语法优美、丰富强大的库、开发效率高、应用领域广泛等等,这些特性促使 Python 的入门和学习需求越来越强烈。以下整理了一些入门&应用级别的技术文章,可供学习使用。
入门级
应用级
写在最后
作为一门开放性语言,Python 维护者众多,加之近些年出现了好多实用的框架,因此越来越深受广大开发者的喜欢。但是如果想吃螃蟹,编程语言仅仅只是吃螃蟹的工具而已,能否捉到螃蟹还要依赖于你本身的知识和其它技能。
所以,人生苦短,来用 Python 吧。
————— END —————
512 个 AI 职位、11 万美元年薪,盘点 2018 最佳人工智能公司